In [1]:
%matplotlib inline

from matplotlib import pyplot as plt
import matplotlib.mlab as mlab
import csv
from scipy.stats import norm
import numpy as np
import scipy.stats as stats
import numpy

In [2]:
data = open('../data/data.csv', 'r').readlines()
fieldnames = ['x', 'y', 'z', 'unmasked', 'synapses']
reader = csv.reader(data)
reader.next()

rows = [[int(col) for col in row] for row in reader]

In [3]:
sorted_x = sorted(list(set([r[0] for r in rows])))
sorted_y = sorted(list(set([r[1] for r in rows])))
sorted_z = sorted(list(set([r[2] for r in rows])))

In [7]:
for i in sorted_x:
    unmasked = ([r[-2] for r in rows if r[0] == i])
    mean = np.mean(unmasked)
    variance = np.var(unmasked)
    plt.hist(unmasked, bins=50)
    plt.title("Layer " + str(i))
    plt.show()
    print "Layer " + str(i) + " has a mean: " + str(mean) + " and variance: " + str(variance)


Layer 19 has a mean: 3338.91958042 and variance: 19936691.4201
Layer 58 has a mean: 4478.58741259 and variance: 40001791.078
Layer 97 has a mean: 5525.97202797 and variance: 65924619.3664
Layer 136 has a mean: 6878.46853147 and variance: 109583237.298
Layer 175 has a mean: 9844.98251748 and variance: 203362739.626
Layer 214 has a mean: 16556.7832168 and variance: 414491501.065
Layer 253 has a mean: 30060.034965 and variance: 691684656.789
Layer 292 has a mean: 53658.0664336 and variance: 936209781.688
Layer 331 has a mean: 79726.1311189 and variance: 1180654877.89
Layer 370 has a mean: 99928.5332168 and variance: 1636265411.58
Layer 409 has a mean: 110054.491259 and variance: 1872736409.12
Layer 448 has a mean: 114375.620629 and variance: 2137887124.89
Layer 487 has a mean: 116725.216783 and variance: 2248657697.74
Layer 526 has a mean: 119434.246503 and variance: 2216370195.47
Layer 565 has a mean: 117788.412587 and variance: 2303277754.96
Layer 604 has a mean: 117669.386364 and variance: 2291938499.72
Layer 643 has a mean: 117647.117133 and variance: 2372958897.55
Layer 682 has a mean: 120046.909091 and variance: 2348931085.24
Layer 721 has a mean: 119940.743007 and variance: 2431399035.97
Layer 760 has a mean: 121205.052448 and variance: 2370176108.85
Layer 799 has a mean: 122618.818182 and variance: 2375087045.47
Layer 838 has a mean: 119774.562937 and variance: 2475567907.57
Layer 877 has a mean: 121983.851399 and variance: 2446414050.39
Layer 916 has a mean: 122335.08042 and variance: 2447568484.46
Layer 955 has a mean: 121952.832168 and variance: 2532488424.21
Layer 994 has a mean: 121149.695804 and variance: 2522165962.91
Layer 1033 has a mean: 121191.704545 and variance: 2581421295.13
Layer 1072 has a mean: 122422.842657 and variance: 2493858052.46
Layer 1111 has a mean: 120719.012238 and variance: 2555965749.78
Layer 1150 has a mean: 122581.283217 and variance: 2542620758.4
Layer 1189 has a mean: 123328.104895 and variance: 2569282985.77
Layer 1228 has a mean: 121249.517483 and variance: 2608331123.49
Layer 1267 has a mean: 120478.431818 and variance: 2539234530.95
Layer 1306 has a mean: 119546.812937 and variance: 2622522971.01
Layer 1345 has a mean: 122678.251748 and variance: 2596250000.11
Layer 1384 has a mean: 120619.802448 and variance: 2620090105.6
Layer 1423 has a mean: 119691.730769 and variance: 2600584145.53
Layer 1462 has a mean: 121341.562937 and variance: 2665764043.8
Layer 1501 has a mean: 122629.95979 and variance: 2669665224.79
Layer 1540 has a mean: 122249.912587 and variance: 2741474185.91
Layer 1579 has a mean: 124074.361888 and variance: 2594571984.69
Layer 1618 has a mean: 123645.458042 and variance: 2644148558.76
Layer 1657 has a mean: 120717.88986 and variance: 2693052399.15
Layer 1696 has a mean: 118751.856643 and variance: 2647382144.95
Layer 1735 has a mean: 118565.699301 and variance: 2735847239.36
Layer 1774 has a mean: 119022.800699 and variance: 2722159846.45
Layer 1813 has a mean: 122207.994755 and variance: 2645284579.58
Layer 1852 has a mean: 123331.993007 and variance: 2675846552.33
Layer 1891 has a mean: 122141.323427 and variance: 2738788608.19
Layer 1930 has a mean: 121597.111888 and variance: 2686925347.67
Layer 1969 has a mean: 120308.910839 and variance: 2774477261.34
Layer 2008 has a mean: 122079.70979 and variance: 2689846507.84
Layer 2047 has a mean: 121681.555944 and variance: 2824503364.96
Layer 2086 has a mean: 122481.076923 and variance: 2699931689.69
Layer 2125 has a mean: 120975.117133 and variance: 2698373040.84
Layer 2164 has a mean: 120313.311189 and variance: 2689532476.77
Layer 2203 has a mean: 120578.576923 and variance: 2677844560.14
Layer 2242 has a mean: 120102.452797 and variance: 2738441250.68
Layer 2281 has a mean: 119400.617133 and variance: 2695406027.41
Layer 2320 has a mean: 119017.146853 and variance: 2734892163.97
Layer 2359 has a mean: 119043.727273 and variance: 2810739130.83
Layer 2398 has a mean: 117104.613636 and variance: 2933331860.99
Layer 2437 has a mean: 119097.171329 and variance: 2762337244.27
Layer 2476 has a mean: 120677.06993 and variance: 2636554297.59
Layer 2515 has a mean: 117091.770979 and variance: 2711810616.92
Layer 2554 has a mean: 119492.236014 and variance: 2703954729.32
Layer 2593 has a mean: 120766.409091 and variance: 2740686328.81
Layer 2632 has a mean: 117627.660839 and variance: 2776235366.79
Layer 2671 has a mean: 117618.437063 and variance: 2708463569.02
Layer 2710 has a mean: 120054.708042 and variance: 2772776229.22
Layer 2749 has a mean: 120478.662587 and variance: 2794099308.96
Layer 2788 has a mean: 117754.631119 and variance: 2768308780.5
Layer 2827 has a mean: 117753.435315 and variance: 2779256005.46
Layer 2866 has a mean: 119265.966783 and variance: 2791821679.2
Layer 2905 has a mean: 118503.589161 and variance: 2835339846.3
Layer 2944 has a mean: 120006.975524 and variance: 2740426209.57
Layer 2983 has a mean: 120386.480769 and variance: 2793301873.02
Layer 3022 has a mean: 120886.073427 and variance: 2748064535.15
Layer 3061 has a mean: 118179.124126 and variance: 2787562351.97
Layer 3100 has a mean: 116569.777972 and variance: 2764455300.13
Layer 3139 has a mean: 117050.473776 and variance: 2834316737.15
Layer 3178 has a mean: 119036.253497 and variance: 2778122563.37
Layer 3217 has a mean: 117718.423077 and variance: 2789708721.52
Layer 3256 has a mean: 116072.493007 and variance: 2861965894.63
Layer 3295 has a mean: 119299.393357 and variance: 2792510653.83
Layer 3334 has a mean: 118090.131119 and variance: 2837009010.82
Layer 3373 has a mean: 118832.896853 and variance: 2795258935.51
Layer 3412 has a mean: 120630.832168 and variance: 2728120891.68
Layer 3451 has a mean: 117933.575175 and variance: 2834643918.57
Layer 3490 has a mean: 114388.732517 and variance: 2805492588.91
Layer 3529 has a mean: 116253.054196 and variance: 2701891361.42
Layer 3568 has a mean: 118677.092657 and variance: 2731981740.46
Layer 3607 has a mean: 117109.734266 and variance: 2785933207.3
Layer 3646 has a mean: 113318.204545 and variance: 2938892445.52
Layer 3685 has a mean: 109724.300699 and variance: 3137041280.49
Layer 3724 has a mean: 106040.664336 and variance: 3273841698.7
Layer 3763 has a mean: 102562.624126 and variance: 3243828167.58
Layer 3802 has a mean: 97099.7902098 and variance: 3100693348.33
Layer 3841 has a mean: 81069.4370629 and variance: 2495937948.74
Layer 3880 has a mean: 59244.0104895 and variance: 1489883321.41
Layer 3919 has a mean: 36049.8146853 and variance: 707923042.224
Layer 3958 has a mean: 22344.1013986 and variance: 321490979.402
Layer 3997 has a mean: 14841.9125874 and variance: 155181463.671
Layer 4036 has a mean: 10329.3444056 and variance: 81589133.7188
Layer 4075 has a mean: 7806.53846154 and variance: 56456664.0247
Layer 4114 has a mean: 6526.90734266 and variance: 47027808.5806
Layer 4153 has a mean: 5890.22202797 and variance: 40189803.4455
Layer 4192 has a mean: 5135.88636364 and variance: 29565950.4329

In [4]:
for i in sorted_y:
    unmasked = ([r[-2] for r in rows if r[1] == i])
    mean = np.mean(unmasked)
    variance = np.var(unmasked)
    plt.hist(unmasked, bins=50)
    plt.title("Layer " + str(i))
    plt.show()
    print "Layer " + str(i) + " has a mean: " + str(mean) + " and variance: " + str(variance)


Layer 1369 has a mean: 119961.606061 and variance: 2491502474.4
Layer 1408 has a mean: 119492.08165 and variance: 2448366165.64
Layer 1447 has a mean: 118932.739899 and variance: 2454120916.47
Layer 1486 has a mean: 119928.198653 and variance: 2455989866.93
Layer 1525 has a mean: 121281.205387 and variance: 2447650702.24
Layer 1564 has a mean: 120593.302189 and variance: 2456548134.01
Layer 1603 has a mean: 119948.771886 and variance: 2522056100.94
Layer 1642 has a mean: 122407.896465 and variance: 2419474356.15
Layer 1681 has a mean: 121535.398148 and variance: 2456712063.99
Layer 1720 has a mean: 122313.877946 and variance: 2469781306.6
Layer 1759 has a mean: 122731.176768 and variance: 2459123285.67
Layer 1798 has a mean: 121487.207912 and variance: 2479481253.31
Layer 1837 has a mean: 120250.672559 and variance: 2461647243.18
Layer 1876 has a mean: 121077.545455 and variance: 2481860822.76
Layer 1915 has a mean: 122801.160774 and variance: 2461321377.22
Layer 1954 has a mean: 121970.628788 and variance: 2478477068.73
Layer 1993 has a mean: 120440.450337 and variance: 2445178849.38
Layer 2032 has a mean: 119737.433502 and variance: 2448418117.62
Layer 2071 has a mean: 118626.619529 and variance: 2500413960.41
Layer 2110 has a mean: 121191.869529 and variance: 2446852268.45
Layer 2149 has a mean: 121141.707912 and variance: 2472257475.39
Layer 2188 has a mean: 122519.888047 and variance: 2427219845.58
Layer 2227 has a mean: 121125.152357 and variance: 2484550008.18
Layer 2266 has a mean: 119690.220539 and variance: 2426614765.16
Layer 2305 has a mean: 117712.962963 and variance: 2457668430.86
Layer 2344 has a mean: 119840.222222 and variance: 2441201707.7
Layer 2383 has a mean: 120960.491582 and variance: 2452034735.02
Layer 2422 has a mean: 120209.461279 and variance: 2472278945.24
Layer 2461 has a mean: 119919.170034 and variance: 2471216780.42
Layer 2500 has a mean: 117616.555556 and variance: 2442139290.82
Layer 2539 has a mean: 117393.37963 and variance: 2457918433.02
Layer 2578 has a mean: 119181.377946 and variance: 2471346618.1
Layer 2617 has a mean: 119315.393939 and variance: 2489069353.56
Layer 2656 has a mean: 117190.31734 and variance: 2484366224.36
Layer 2695 has a mean: 115720.109428 and variance: 2520529629.99
Layer 2734 has a mean: 117434.025253 and variance: 2456332860.92
Layer 2773 has a mean: 115750.520202 and variance: 2477887803.8
Layer 2812 has a mean: 113360.535354 and variance: 2497010589.06
Layer 2851 has a mean: 113808.85101 and variance: 2439775215.79
Layer 2890 has a mean: 111791.092593 and variance: 2444652415.33
Layer 2929 has a mean: 108204.804714 and variance: 2498815689.82
Layer 2968 has a mean: 99327.1102694 and variance: 2793873004.72
Layer 3007 has a mean: 84753.233165 and variance: 3128599429.94
Layer 3046 has a mean: 72613.7180135 and variance: 3645129652.18
Layer 3085 has a mean: 58922.5942761 and variance: 3618478670.36
Layer 3124 has a mean: 44402.5622896 and variance: 3152313279.42
Layer 3163 has a mean: 30442.226431 and variance: 2560802630.26
Layer 3202 has a mean: 18175.0126263 and variance: 1593398829.74
Layer 3241 has a mean: 9066.97558923 and variance: 602443078.049
Layer 3280 has a mean: 2821.05218855 and variance: 76127196.8559
Layer 3319 has a mean: 622.647306397 and variance: 5857223.45052
Layer 3358 has a mean: 40.1582491582 and variance: 35702.4934757

In [6]:
for i in sorted_z:
    unmasked = ([r[-2] for r in rows if r[2] == i])
    mean = np.mean(unmasked)
    variance = np.var(unmasked)
    plt.hist(unmasked, bins=50)
    plt.title("Layer " + str(i))
    plt.show()
    print "Layer " + str(i) + " has a mean: " + str(mean) + " and variance: " + str(variance)


Layer 55 has a mean: 102719.094195 and variance: 3477944835.59
Layer 166 has a mean: 87070.7998575 and variance: 3413986032.45
Layer 277 has a mean: 98745.8954772 and variance: 4475705865.45
Layer 388 has a mean: 96319.411859 and variance: 3797222148.35
Layer 499 has a mean: 105989.338141 and variance: 4111610256.62
Layer 610 has a mean: 93240.6834046 and variance: 2665941369.36
Layer 721 has a mean: 101479.304487 and variance: 3446043856.99
Layer 832 has a mean: 101410.227742 and variance: 3271747761.17
Layer 943 has a mean: 108122.683226 and variance: 3727344929.68
Layer 1054 has a mean: 114655.775463 and variance: 3921713260.36
Layer 1165 has a mean: 113047.115207 and variance: 3706183761.06

In [12]:
volume = numpy.ndarray((max(sorted_x)+1, max(sorted_z)+1))

for row in rows:
    volume[row[0], row[2]] += float(row[-2])
    
    
#count = 0
#for i in range(0,max(sorted_x)):  #to iterate between 10 to 20
#    for j in range(0,max(sorted_z)):
#        if volume[i ,j] != 0:
#            print i, j, volume[i ,j]

In [13]:
import pandas as pd
import seaborn as sns
import numpy as np

volume = np.log(volume+1)
df = pd.DataFrame(volume)

In [14]:
ax = sns.heatmap(df, yticklabels=False, xticklabels=False)



In [17]:
vol = np.zeros((len(sorted_x), len(sorted_y), len(sorted_z)))
for r in rows:
    vol[sorted_x.index(r[0]), sorted_y.index(r[1]), sorted_z.index(r[2])] = r[-2]

In [18]:
yflat = np.amax(vol, axis=1)
frame_y = pd.DataFrame(yflat)
sns.heatmap(frame_y)


Out[18]:
<matplotlib.axes.AxesSubplot at 0x1230bbc50>

In [19]:
zflat = np.amax(vol, axis=2)
frame_z = pd.DataFrame(zflat)
sns.heatmap(frame_z)


Out[19]:
<matplotlib.axes.AxesSubplot at 0x123286690>

In [20]:
xflat = np.amax(vol, axis=0)
frame_x = pd.DataFrame(xflat)
sns.heatmap(frame_x)


Out[20]:
<matplotlib.axes.AxesSubplot at 0x1234b0950>

In [ ]: